﻿@model IEnumerable<ResultTK>
@using Kendo.Mvc.UI
@using System.ComponentModel.DataAnnotations

@if (Model.Count() > 0)
{
    // Tinh phan tram
    string data = "<script> _data=[";
    int TongHoSo = 0;

    TongHoSo = Model.Count();
    var result = Model.GroupBy(e => new { e.HinhThucDK}).Select(e =>
        new DynamicData
        {
            ID = e.Key.HinhThucDK.ToString(),
            Name = ((DisplayAttribute)(typeof(HinhThucDK).GetField(e.Key.HinhThucDK.ToString()).GetCustomAttributes(typeof(DisplayAttribute), false).First())).Name,
            Total = e.Count()
        });

    foreach (var item in result)
    {
        data += "['" + item.Name + "'," + Math.Round((float)item.Total / TongHoSo, 3).ToString().Replace(',', '.') + "],";
    }

    data = data.Substring(0, data.Length - 1);
    data += "]; ";
    data += " </script>";

    @Html.Raw(data)

    <div id="container"></div>
    <script>
        $(function () {
            $('#container').highcharts({
                chart: {
                    plotBackgroundColor: null,
                    plotBorderWidth: 0,//null,
                    plotShadow: false
                },
                title: {
                    text: 'Thống kê hồ sơ theo Hình thức đăng ký',
                    x: -20
                },
                subtitle: {
                    text: 'Số liệu từ: @(ViewBag.TuNgay + " - " + ViewBag.DenNgay) <br/>Tổng số hồ sơ: @TongHoSo',
                    x: -20
                },
                tooltip: {
                    pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
                },

                plotOptions: {
                    pie: {
                        allowPointSelect: true,
                        cursor: 'pointer',
                        dataLabels: {
                            enabled: true,
                            format: '<b>{point.name}</b>: {point.percentage:.1f} %',
                            style: {
                                color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
                            }
                        }
                    },
                    showInLegend: true
                },
                series: [{
                    type: 'pie',
                    name: 'Lượng hồ sơ chiếm',
                    data: _data
                }]
            });
        });

    </script>
    <hr />

    <a class="btn btn-danger" id='print' onclick="tableToExcel( '#Grid table','Thống kê theo bậc đào tạo')">Xuất Excel</a>
    <div class="clear pb10 "> </div>
    <div class="table-responsive">

        @( Html.Kendo().Grid(Model)
                    .Name("Grid")
                        .Pageable(page => page  // Phân trang
                            //.ButtonCount(3)    // Số button hiển thị phân trang
                                .Info(true)   // Hiển thị thông tin dữ liệu dưới cùng góc bên phải Grid
                                .Refresh(true)   // Hiển thị nút làm mới Grid
                                        .Messages(mess => mess
                                        .Display("{0}-{1} của {2} bản ghi.")
                                        .Empty("Không có dữ liệu")
                                        .Refresh("Làm mới")
                                        .First("Trang đầu tiên")
                                        .Last("Trang cuối cùng")
                                        .Next("Trang tiếp")
                                        .Previous("Trang trước")
                                    )
                                 .Input(false)

                            )
                    .Columns(columns =>
                    {
                        columns.Bound(p => p.MaTS);
                        columns.Bound(p => p.FullName);
                        columns.Bound(p => p.SBD);
                        columns.Bound(p => p.NgaySinh);
                        columns.Bound(p => p.TenBacDaoTao);
                        columns.Bound(p => p.TenKhoiThi);
                        columns.Bound(p => p.TenNganh);
                        columns.Bound(p => p.TenChuyenNganh);
                        columns.ForeignKey(p => p.HinhThucDK, (System.Collections.IEnumerable)ViewBag.HinhThucDK, "Value", "Text")
                                .Title("Hình thức đăng ký");
                    })
                    .DataSource(dataSource => dataSource
                        .Ajax()
                     .PageSize(10000000)
                     .Sort(e =>
                     {
                         e.Add(p => p.HinhThucDK);
                         e.Add(p => p.MaTS);
                         e.Add(p => p.MaBacDaoTao);
                         e.Add(p => p.MaKhoiThi);                         
                         
                     }))
        )
    </div>
}
else
{
    <h4 class="no-data">Không có dữ liệu</h4>
}
